A computer operating system may initiate a software application by creating a number of processes or tasks to execute instructions associated with the application. The application may create one or more threads, such as application-level threads and/or operating system threads, to implement a particular process. Computer systems that rely primarily on a multi-threaded architecture rather than on individual processes can improve performance and simplify configuration and administration. However, building and using complex computer systems to manage a very large number of threads and associated thread-local storage can be difficult. For example, systems that utilize thread-local storage typically require special hardware and compiler technology to perform efficiently. Additionally, implementing a multi-threaded architecture that is suitable for use by a variety of different operating systems can be challenging. Accordingly, there is a need for an improved system and method of using threads and thread-local storage.